package social.server.historicActivity;

import java.util.Date;

/**
 * Classe responsavel por representar um atividade de adicao de amigo no
 * historio do usuario.
 * 
 * @author Grupo: Brunna Amorim, Caio Libanio, Diego de Lima, Dimitre Andrew e
 *         Rafael Cavalcante
 * 
 */
public class FriendAdditionActivity implements HistoricActivity {

	private String userName;
	private String friendName;
	private String activity;
	private Date date;

	/**
	 * Construtor de um objeto "FriendAdditionActivity".
	 * 
	 * @param userName
	 *            Nome do usuario executor da atividade.
	 * @param friendName
	 *            Nome do amigo adicionada pela atividade.
	 */
	public FriendAdditionActivity(String userName, String friendName) {
		this.date = new Date();
		this.userName = userName;
		this.friendName = friendName;
		buildActivity();
	}

	@Override
	public Date getDate() {
		return date;
	}

	@Override
	public boolean equals(HistoricActivity activity) {
		if (!FriendAdditionActivity.class.isInstance(activity)) {
			return false;
		}

		if (userName
				.equals(((FriendAdditionActivity) activity).getFriendName())
				&& friendName.equals(((FriendAdditionActivity) activity)
						.getUserName())) {
			return true;
		}

		return false;
	}

	@Override
	public String getActivity() {
		return activity;
	}

	@Override
	public void buildActivity() {
		activity = userName + " e " + friendName + " são amigos agora";

	}

	/**
	 * Retorna o nome do usuario executor da atividade.
	 * 
	 * @return Nome do usuario
	 */
	public String getUserName() {
		return userName;
	}

	/**
	 * Retorna o nome do amigo adicionado pela atividade.
	 * 
	 * @return Nome do amigo
	 */
	public String getFriendName() {
		return friendName;
	}

	@Override
	public boolean compareDates(Date dateActivity) {
		if (date.compareTo(dateActivity) < 0) {
			return false;
		}
		return true;
	}
}
